//
//  DemoMath.swift
//  swiftDemo
//
//  Created by JIENING ZHANG on 2022/10/27.
//  Copyright © 2022 lovivid. All rights reserved.
//

import UIKit

class DemoMath: NSObject {
    class func demoLogic() {
        // 加减乘除
        let x:Double = .pi;
        let y:Double = 2.71828182846;
        print("PI + 自然常数E = \(x+y)");
        print("PI - 自然常数E = \(x-y)");
        print("PI * 自然常数E = \(x*y)");
        print("PI / 自然常数E = \(x/y)");

        // 平方开方
        print("PI 平方 = \(x*x)");
        print("PI 平方根 = \(sqrt(x))");

        // 向下取整，向上取整，4舍5入，强转为int(效果为向下取整)
        print("PI 向上取整 = \(ceil(x))");
        print("PI 向下取整 = \(floor(x))");
        print("PI 4舍5入 = \(round(x))");
        print("PI 强转为int(效果为向下取整) = \((Int)(x))");
        print("自然常数E 强转为int(效果为向下取整) = \((Int)(y))");

        // 三角函数 反三角函数
        let r2a:Double = 57.29577951308232; // 弧度转角度 比例参数
        let a24:Double = 0.017453292519943295; // 角度转弧度 比例参数
        print("自然常数E作为角度(弧度), 转为360角度 = \(y * r2a)");
        print("自然常数E作为角度(弧度), 正弦 =  \(sin(y))");
        print("自然常数E作为角度(弧度), 余弦 =  \(cos(y))");
        print("自然常数E作为角度(弧度), 正切 = \(tan(y))");
        print("自然常数E作为角度(弧度), 余切(正切倒数) = \(1.0 / tan(y))");
        print("自然常数E作为角度(弧度), 正割(余弦倒数) = \(1.0 / cos(y))");
        print("自然常数E作为角度(弧度), 余割(正弦倒数) = \(1.0 / sin(y))");
        let s5:Double = 1.0 / sqrt(5);
        print("根号5分之1 反正弦(定义域 [-1,1], 值域[-pi/2,pi/2]) = \(asin(s5))");
        print("根号5分之2 反余弦(定义域 [-1,1], 值域[0,pi]) = \(acos(2 * s5))");
        print("0.5 反正切(值域[0,pi]) = \(atan(0.5))");

        // 指数函数 对数函数
        print("E 的 3次方=\(pow(y, 3)), 用exp函数 = \(exp(3.0))");
        print("E 的 PI次方=\(pow(y, x)), 用exp函数 = \(exp(x))");
        print("E 的 4次方=\(pow(y, 4)), 用exp函数 = \(exp(4.0))");
        print("E为底, E的PI次方的对数(如果没有精度损失应该等于PI) = \(log(exp(x)))");
        print("10为底, E的PI次方的对数 = \(log10(exp(x)))");
        print("2为底, E的PI次方的对数 = \(log(exp(x)) / log(2.0))"); // log2N=logeN/loge2,logeN代表以e为底的N的对数,loge2代表以e为底的2的对数

        // 向量 矩阵
        // 虚数
        // 大数（超过64位）
    }
}
